package com.neouton.crm.supplier.entity;


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.customer.entity.ContactsVO;
import com.neouton.crm.op.entity.SalesOpportunityVO;
import com.neouton.crm.payRecords.entity.PaymentRecords;
import com.neouton.crm.payRecords.entity.PaymentRequest;
import com.neouton.crm.paymentPlan.entity.PaymentPlan;
import com.neouton.crm.pm.entity.PurchaseOrderVO;
import com.neouton.crm.pm.entity.SalesProjectManageVO;
import com.neouton.crm.receiptRecords.entity.ReceiptRecords;
import com.neouton.crm.refundRecords.entity.RefundRecordsVO;
import com.neouton.crm.transpondEmail.entity.TranspondEmailVO;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;


/**
 * @program: crm
 * @Timestamp: 2022-11-17
 * @Author: WuJie
 * @Description: 客户信息Vo
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SupplierVO extends BaseEntityVO implements Serializable {

    /**
     * 主键自增
     */
    private Integer supplierId;
    /**
     * 产品库ID
     */
    private Integer enterpriseId;
    /**
     * 工作流ID
     */
    private Integer businessId;
    /**
     * 审批ID
     */
    private Integer approvalId;
    /**
     * 客户名称
     */
    private String supplierName;
    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String supplierContacts;
    /**
     * 联系人电话
     */
    @Excel(name = "联系人电话")
    private String supplierContactsPhone;
    /**
     * 联系人职位
     */
    @Excel(name = "联系人职位")
    private String supplierPosition;
    /**
     * 座机电话
     */
    @Excel(name = "工作电话")
    private String supplierWorkPhone;
    /**
     * 单位地址
     */
    @Excel(name = "单位地址")
    private String supplierAddress;
    /**
     * 等级关系
     */
    private Integer rankCorrelation;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;
    /**
     * 是否删除（1，启用，2，禁用）
     */
    private Integer isDelete;
    /**
     * 是否为客户（1，是，2，否）
     */
    private Integer isCustomer;
    /**
     * 审核状态（1，待审批，2，通过，3，驳回，）
     */
    private Integer status;
    /**
     * 审批意见
     */
    @Excel(name = "审批意见")
    private String auditOpinion;
    /**
     * 工商库名称
     */
    @Excel(name = "供应商名称")
    private String enterpriseName;
    /**
     * 工商库简称
     */
    private String enterpriseAbbreviation;

    /**
     * 是否为客户，是/否中文，用于导出EXCEL
     */
    @Excel(name = "是否为客户")
    private String isCustomerStr;
    /**
     * 审批状态中文，用于导出excel
     */
    @Excel(name = "审核状态")
    private String statusStr;
    /**
     * 等级关系中文，用于导出excel
     */
    @Excel(name = "等级关系")
    private String rankCorrelationStr;
    /**
     * 是否禁用（0，启用，1，禁用）
     * 用于导出EXCEL；
     */
    @Excel(name = "是否禁用")
    private String isDeleteStr;

    /**
     * 申请原因
     */
    private String reason;
    /**
     * 审批状态
     * 0已提交
     * 1已通过
     * 2已驳回
     */
    private Integer approvalStatus;
    /**
     * 最后审批时间
     */
    private Timestamp aplLastUpdateDate;

    /**
     * 审批类型
     */
    private Integer approvalType;

    /**
     * 申请人
     */
    private Integer applicant;
    /**
     * 申请时间
     */
    private Timestamp applyTime;
    /**
     * 下一处理人
     */
    private Integer nextApprover;
    /**
     * 编号
     */
    private String approvalCode;

    /**
     * 所有事件
     */
    private List<Object> allThings = new ArrayList<>();
    /**
     * 项目信息集合
     */
    private List<SalesProjectManageVO> salesProjectList;
    /**
     * 机会信息集合
     */
    private List<SalesOpportunityVO> salesOpportunityList;
    /**
     * 采购订单集合
     */
    private List<PurchaseOrderVO> purchaseOrders;
    /**
     * 付款计划集合
     */
    private List<PaymentPlan> paymentPlans;
    /**
     * 付款记录集合
     */
    private List<PaymentRecords> paymentRecords;
    /**
     * 收票记录集合
     */
    private List<ReceiptRecords> receiptRecords;
    /**
     * 付款申请集合
     */
    private List<PaymentRequest> paymentRequests;
    /**
     * 退款记录集合
     */
    private List<RefundRecordsVO> refundRecords;
    /**
     * 未付款采购订单集合
     */
    private List<PurchaseOrderVO> notPay;

    private String askReason;

    private Timestamp apLastUpdateTime;

    private Integer apCreatedBy;

    /**
     * 转发人员集合
     */
    private List<Integer> transpondUseIdList;
    /**
     * 转发表信息集合
     */
    private List<TranspondEmailVO> transpondEmailVos;

    private String rankCorrelationName;

    private List<ContactsVO> contacts;
}
